.\"   $Id: GENLIB_LOINSE.3,v 1.1 2002/03/08 14:08:10 fred Exp $
.\" @(#)GENLIB_LOINSE.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
GENLIB_LOINSE
.XE \}
.TH GENLIB_LOINSE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
.SH NAME
GENLIB_LOINSE \- add a logical instance to the current figure, with explicit connections
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
void GENLIB_LOINSE(model, instance, couple1, couple2, ..., couplen, EOL);
char \(**model, \(**instance;
char \(**couple1, \(**couple2, ..., \(**couplen;
.ft R
.fi
.so man1/alc_origin.1
.SH PARAMETERS
.TP 20
\fImodel\fP
Name of the model to be logically instantiated
.TP
\fIinstance\fP
Name to be given to the new instance
.TP
\fIcouple1, couple2, ..., couplen\fP
Explicit list of connections between connectors and signals.
.SH DESCRIPTION
\fBLOINSE\fP add a logical instance in the actual working figure.
\fBLOINSE\fP uses environment variables to
choose the file format and the path to the file.
.br
\fBMBK_IN_LO\fP set up the input file format, the valid ones being :
.RS
.br
\fBhns
.br
fne
.br
al
.br
alx\fP
.RE
\fBMBK_WORK_LIB\fP set up the output file path. Any valid unix path is
ok.
\fBLOINSE\fP look in memory and then, if not found, on disk for the
figure \fImodelname\fP. This is due to the need to ensure consistency
between the model and its ascociated instances.
.br
The instance is added with the name \fIinstance\fP, and each of the
signals are connected to an instance connector.
The connector signal link is explicit, and described in the \fBcouple\fRs
arguments.
The \fBcouple\fRs arguments are supposed to have the form:
.nf
\fBconector => signal\fP
.br
or
\fBconector[a:b] => signal[n:m]\fP
where \fIa - b\fP equals, in absolute value, \fIn - m\fR.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_LOINSE impossible : missing GENLIB_DEF_LOFIG"
.ft R
.br
.RS
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
possible to add anything. you must call \fBDEF_LOFIG\fP before any other
netlist call.
.RE
.br
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_LOINSE : Bad signal bus name"
.ft R
.br
.RS
A signal, described under a bus form, has an illegal syntax.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"Illegal addloins. Instance insname already exist in figure figname"
.ft R
.br
.RS
An instance name must be unique in a given figure at a given hierarchy level.
.RE
.br
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"Illegal addloins. Instance model is the figure figname itself"
.ft R
.br
.RS
A figure cannot be included in itself. Be careful, the check is only
made at current hierarchy level.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.br
"Illegal addloins. Connector number discrepancy between
figure modelname and instance insname in figure figname"
.ft R
.br
.RS
The number of connector in the model is not equal to the number of signals
describing the connectivity during the \fBLOINSE\fP call.
.RE
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
main()
{
	/\(** Create a figure to work on  \(**/
	GENLIB_DEF_LOFIG("mycell");
	/\(** define interface  \(**/
	GENLIB_LOCON("i", INPUT, "sig1");
	GENLIB_LOCON("o", OUTPUT, "sig2");
	/\(** Place an instance \(**/
	GENLIB_LOINSE("model","instance", "con1 => sig1", "con2 => sig2", 0L);
	GENLIB_LOINSE("stuff","shirt", "i[31:0] => out[32:63]", "j[2] => sig2", 0L);
	/\(** Save all that on disk \(**/
	GENLIB_SAVE_LOFIG();
}
.ft R
.fi
.SH SEE ALSO
.BR genlib (1),
.BR GENLIB_DEF_LOFIG (3),
.BR GENLIB_LOINS (3),
.BR MBK_IN_LO (1),
.BR MBK_CATA_LIB (1),
.BR MBK_WORK_LIB (1).


.so man1/alc_bug_report.1

